home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / prog / dnalib59.arj / LOCKS.BAS < prev    next >
BASIC Source File  |  1994-01-21  |  2KB  |  110 lines

  1. DECLARE SUB CalcByte(Attr%,LowByte%,HiByte%)
  2.  
  3. SUB LockStatus(Row%,Col%,BarAttr%,StatusAttr%)PUBLIC
  4.  
  5. CalcByte BarAttr%,BarFG%,BarBG%
  6. CalcByte StatusAttr%,StFG%,StBG%
  7.  
  8. REG 1,&h1200
  9. CALL INTERRUPT &h16
  10. b% = ABS(REG(1))
  11.  
  12. IF (b% and 32) = 32 THEN NumLock% = 1 ELSE NumLock% = 0
  13. IF (b% and 64) = 64 THEN CapsLock% = 1 ELSE CapsLock% = 0
  14.  
  15. LOCATE Row%,Col%,0
  16. COLOR BarFG%,BarBG%
  17. PRINT SPACE$(10);
  18. LOCATE Row%,Col%,0
  19. COLOR StFG%,StBG%
  20. IF CapsLock% THEN PRINT " CAPS ";
  21. LOCATE Row%,Col% + 5,0
  22. IF NumLock% THEN PRINT " NUM ";
  23.  
  24. END SUB
  25.  
  26. '----------------------------------------------------------------------------
  27. FUNCTION InsertKey%()PUBLIC
  28.  
  29. REG 1,&h1200
  30. CALL INTERRUPT &h16
  31. b% = ABS(REG(1))
  32.  
  33. IF (b% and 128) = 128 THEN InsertKey% = 1 ELSE InsertKey% = 0
  34.  
  35. END FUNCTION
  36.  
  37. '----------------------------------------------------------------------------
  38. FUNCTION KeyDown%()PUBLIC
  39.  
  40. DIM ABSOLUTE BIOS(&H300) AS INTEGER AT 0
  41.  
  42. IF BIOS(&H20C) = 32 OR BIOS(&H20C) = 64 THEN
  43.   DELAY .1
  44.   KeyDown% = 1
  45. ELSE
  46.   KeyDown% = 0
  47. END IF
  48.  
  49. END FUNCTION
  50.  
  51. '----------------------------------------------------------------------------
  52. FUNCTION AltKey%()PUBLIC
  53.  
  54. REG 1,&H1200
  55. CALL INTERRUPT &H16
  56. b% = ABS(REG(1))
  57.  
  58. IF (b% and  8) =  8 THEN
  59.   AltKey% = 1
  60. ELSE
  61.   AltKey% = 0
  62. END IF
  63.  
  64. END FUNCTION
  65.  
  66. '----------------------------------------------------------------------------
  67. FUNCTION CtrlKey%()PUBLIC
  68.  
  69. REG 1,&H1200
  70. CALL INTERRUPT &H16
  71. b% = ABS(REG(1))
  72.  
  73. IF (b% and  4) =  4 THEN
  74.   CtrlKey% = 1
  75. ELSE
  76.   CtrlKey% = 0
  77. END IF
  78.  
  79. END FUNCTION
  80.  
  81. '----------------------------------------------------------------------------
  82. FUNCTION RightShift%()PUBLIC
  83.  
  84. REG 1,&H1200
  85. CALL INTERRUPT &H16
  86. b% = ABS(REG(1))
  87.  
  88. IF (b% AND  1) =  1 THEN
  89.   RightShift% = 1
  90. ELSE
  91.   RightShift% = 0
  92. END IF
  93.  
  94. END FUNCTION
  95.  
  96. '----------------------------------------------------------------------------
  97. FUNCTION LeftShift%()PUBLIC
  98.  
  99. REG 1,&H1200
  100. CALL INTERRUPT &H16
  101. b% = ABS(REG(1))
  102.  
  103. IF (b% and  2) =  2 THEN
  104.   LeftShift% = 1
  105. ELSE
  106.   LeftShift% = 0
  107. END IF
  108.  
  109. END FUNCTION
  110.